In a storage system including a non-volatile memory such as a flash memory, reading of data is performed in a page unit. The page includes a plurality of memory cells. For example, a NAND-type flash memory to store information by using a floating gate, information is stored with a charge amount stored in a floating gate of each memory cell. The stored information can be read out using a result of applying a read voltage to the memory cell. A distribution of the charge amount stored in the floating gate of each memory cell varies due to various factors. Thus, an error may be generated in the read data.